#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Math;
namespace Cephei.QL.Math.Matrixutilities
{
     // <summary> 
	// ! Extracts the correlation matrix and the vector of variances out of the input covariance matrix.  Note that only the lower symmetric part of the covariance matrix is used.  \pre The covariance matrix must be symmetric.  \test cross checked with getCovariance
	// </summary>
    [Guid ("F7B892A2-8475-4e69-82DF-D98B2EDA9584"),ComVisible(true)]
	public interface ICovarianceDecomposition 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        
		 Cephei.QL.Math.IMatrix CorrelationMatrix {get;}
        
		 Cephei.QL.Math.IArray StandardDeviations {get;}
        
		 Cephei.QL.Math.IArray Variances {get;}
    }

    // <summary> 
	// ! Extracts the correlation matrix and the vector of variances out of the input covariance matrix.  Note that only the lower symmetric part of the covariance matrix is used.  \pre The covariance matrix must be symmetric.  \test cross checked with getCovariance Factory
	// </summary>
   	[ComVisible(true)]
    public interface ICovarianceDecomposition_Factory // : Collection_Factory<ICovarianceDecomposition, ICell<ICovarianceDecomposition>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    ICovarianceDecomposition Create (Cephei.QL.Math.IMatrix covarianceMatrix, Microsoft.FSharp.Core.FSharpOption<Double> tolerance);
    }
}

